package org.example;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import java.io.File;

public class ExcelReaderExample {
    public static void main(String[] args) throws Exception {
        // 1. 使用 WorkbookFactory 创建工作簿对象（自动判断xls或xlsx）
        Workbook workbook = WorkbookFactory.create(new File("数据.xlsx"));
        // 或者使用 InputStream: Workbook workbook = WorkbookFactory.create(new FileInputStream("数据.xlsx"));

        // 2. 获取第一个工作表
        Sheet sheet = workbook.getSheetAt(0);

        // 3. 遍历行
        for (Row row : sheet) {
            // 4. 遍历该行的所有单元格
            for (Cell cell : row) {
                // 判断单元格的类型并获取对应的值
                CellType cellType = cell.getCellType();
                switch (cellType) {
                    case STRING:
                        System.out.print(cell.getStringCellValue() + "\t");
                        break;
                    case NUMERIC:
                        // 判断是否日期类型（日期也是NUMERIC类型，需要特殊处理）
                        if (DateUtil.isCellDateFormatted(cell)) {
                            System.out.print(cell.getDateCellValue() + "\t");
                        } else {
                            System.out.print(cell.getNumericCellValue() + "\t");
                        }
                        break;
                    case BOOLEAN:
                        System.out.print(cell.getBooleanCellValue() + "\t");
                        break;
                    case FORMULA:
                        System.out.print("Formula:" + cell.getCellFormula() + "\t");
                        break;
                    default:
                        System.out.print(" \t");
                }
            }
            System.out.println(); // 换行
        }

        // 关闭工作簿以释放资源
        workbook.close();
    }
}